package day18;

import java.sql.SQLOutput;
import java.util.*;

public class MapDemo {
    public static void main(String[] args) {

        //1创建map对象
        Map<Integer, String> map = new HashMap<>();
        //2向集合中创建元素，注意是put（），并且输入一对值！
        map.put(9527, "黑熊精");
        map.put(9528, "白骨精");
        map.put(9529, "鲤鱼精");
        map.put(9530, "黄毛怪");

        //map中值可以重复，比如可以两个1黑熊精，但是键不能重复，如果重复会覆盖上一个比如
        map.put(9527 , "女儿国1国王");

        //3查看map中存入的元素
        System.out.println(map);

        //4map中的后一个值可以重复，但是前一个键不能重复

//        map.clear();
//        System.out.println(map);  //清空map值

        System.out.println(map.hashCode());

        Map<String, Double> map2 = new HashMap();
        map2.put("旺仔", 7.5);
        map2.put("哇哈哈", 8.5);
        map2.put("喜之郎", 9.5);
        System.out.println(map2);
        System.out.println(map.hashCode());

        System.out.println(map.equals("黄毛怪"));
        System.out.println(map.isEmpty());
        System.out.println(map.size());

        System.out.println(map.containsKey(9527));
        System.out.println(map.containsValue("白骨精"));   //falaseu因为前面白骨精被女儿过国王覆盖了
        System.out.println(map.get(9530));   //获取指定键对应值
        System.out.println(map);
        System.out.println(map.remove(9530));     //删除指定的键值对，并返回被删除的值
        System.out.println(map);

        //将map集合中所有的value取出，放入collection集合中
        //collection<Type>中Type的类型，取决于map集合中value类型
        Collection<String> values = map.values();
        System.out.println(values);
        Collection<Double> values2 = map2.values();
        System.out.println(values2);


        //遍历Map集合
        //方式1，想要遍历Map集合，但是Map本身没有迭代器，所以需要将其转为set集合
        //KeySet() = Set<key> ； 将map中所有键取出，并存入Set集合
        //获取map集合中所有键并存入set集合中
        Set<Integer> keySet = map.keySet();
        //  获取遍历set集合迭代器
        Iterator<Integer> it = keySet.iterator();
        //循环遍历set集合中的每个元素
        while(it.hasNext()) {
            Integer key = it.next();
            String value = map.get(key);
            System.out.println("key:" + key + " value:" + value);
        }


    }
}
